1. Field of the Invention
The present invention relates generally to computer networks and, more particularly, to computer configurations for network communications.
2. Description of the Related Art
Computer networks, such as local area networks and the Internet, are increasingly being used as the backbone for various transactions and interactions between parties. From online banking, where bank customers can initiate financial transactions on a computer network, to online gaming, where gamers can participate in various games over the Internet, service providers are increasingly providing a variety of services over computer networks. There are currently a variety of different computer network configurations that facilitate the transactions and interactions that take place.
One type of configuration is a classic client-server configuration, such as is illustrated in FIG. 1. In this configuration, a dedicated server computer 110 is communicatively linked to one or more client computers 120 over a network, such as through the Internet. The client computer 120 makes service requests to the server computer 110 and the server computer 110 fulfills the request by transmitting data to the requesting client computer 120 over the network. The server computer 110 can be connected to a data storage device or to other computer devices that facilitate transactions between the client and server computers. One characteristic of the client-server configuration is that the client computers cannot communicate directly with one another, as the client computers are limited to communicating with the server computer.
For example, where the client-server configuration is operated in an online gaming environment, the server computer 110 can be responsible for maintaining the various states that are associated with the online game. The server computer can be connected to other computers, such as a memory engine 140 that maintains one or more instances of a game, while the server computer 110 manages administrative matters such as player matching and account management. A game player on the client computer 120 can log onto the server computer 110 and receive a list of available games and participating players. The player chooses a game to start or join, thereby identifying a memory engine with which the player's computer establishes a client-server connection. In this manner, the server computer 110 and the memory engine 140 collectively administer the gaming environment for one or more client computers 120.
Another type of configuration is referred to as an integrated server configuration, such as is shown in FIG. 2. This configuration includes a dedicated server computer 110 and one or more client computers 120 that are each connected to the server computer 110 over a computer network. As in the previously-described configuration, the server computer 110 serves data to the client computers 120. However, one of the client computers 120, such as the client computer 120a, functions as an integrated server in that the client computer 120a can serve data to the other client computers 120. The client computer 120a can thereby share some of the processing load associated with maintaining the online environment. For example, in an online gaming environment, the server computer 110 can perform administrative functions, such as player matching, account management, and chat room management, while the client computer/integrated server 120a can perform the function of the previously-described memory engine.
In yet another type of communication configuration, the various computers are arranged in a peer-to-peer configuration, such as is shown in FIG. 3. In a peer-to-peer configuration, each of the computers can communicate with the others, so that all of the computers function as “peers”. In one form of the peer-to-peer configuration, a dedicated server 110 is communicatively connected to a plurality of client computers 120 over a network. An online session is initially established by each of the client computers 120 connecting to an administrative computer, such as the server computer 110. The client computers 120 are then communicatively connected to one another so that each of the client computers 120 has the ability to both serve and receive data to and from any of the other client computers 120. In addition, each client computer 120 can operate in a client-server relationship with the dedicated server 110. Those skilled in the art will appreciated that there are other communication configurations in addition to the configurations described above.
There are advantages and disadvantages that are associated with each of the different communication configurations. For example, the client-server configuration allows the use of a powerful computer as the dedicated server, which can be advantageous where a large amount of data processing by the server computer is required. On the other hand, the use of a powerful dedicated server computer can be expensive for the operator of the server and can also be overkill where the server is also used in situations that do no require such processing power. An advantage of the peer-to-peer configuration is faster communication speeds, because the client computers share data directly amongst each other, rather than sharing their data through the server. This reduces the quantity of data transfers that occur over the connected network. Unfortunately, the communication in peer-to-peer communication can be slowed where one of the client computers does not have a large communication bandwidth.
Some specific examples of the various advantages and disadvantages of the different communication configurations can be seen in an online gaming environment. Certain types of games involve many simultaneous players and require large amounts of centralizes data processing to maintain the game environment, such as action games and role playing games that often involve hundreds of players participating in a single game instance. Such games might be more suitable for the client-server configuration, where a powerful dedicated server can be employed for the data processing. On the other hand, a client-server configuration would not be ideal for other types of games that do not require such powerful data processing because the server resources would be under-utilized. This is often the case for games such as sports games that often include only a few players per instance of a game. A peer-to-peer configuration could be more suited to such a game environment, where the data processing can be more easily allocated among the multiple computers participating in the game and a centralized server would not be needed to maintain the game environment.
Unfortunately, current network systems that provide online, multi-user applications are set up to operate exclusively in one of the aforementioned configurations. For example, a multi-user application such as an action game or a role playing game (RPG) might operate in the classic client-server configuration and will be limited to operating in that configuration during the pendency of the session. The application cannot switch to another configuration if circumstances warrant, such as if the number of players is reduced to a number more like a sports game.
Additionally, some networking components will only work in a specific configuration because of network restrictions. These restrictions can require certain clients to be connected in a client-server circumstance, while others will be connected in a peer-to-peer configuration.